package javacode.chapter07.overload;

/**
 * 方法重载
 * 1.方法名必须相同
 * 2.参数列表必须不同（参数类型或个数或顺序，至少有一样不同，参数名无要求）
 * 3.返回类型无要求
 */
public class OverLoad01 {
    public static void main(String[] args) {
        MyCalculator myCalculator = new MyCalculator();
        System.out.println("两个整数相加:" + myCalculator.calculate(2, 3));
        System.out.println("一个整数，一个double类型的数相加:" + myCalculator.calculate(2, 3.5));
        System.out.println("一个double类型的数，一个整数相加:" + myCalculator.calculate(2.6, 3));
        System.out.println("三个整数相加:" + myCalculator.calculate(2, 3, 4));

    }
}

class MyCalculator {
    //两个整数相加
    int calculate(int n1, int n2) {
        return n1 + n2;
    }

    //一个整数，一个double类型的数相加
    double calculate(int n1, double n2) {
        Double double_n1 = Double.valueOf(n1);
        return double_n1 + n2;
    }

    //一个double类型的数，一个整数相加
    double calculate(double n1, int n2) {
        Double double_n2 = new Double(n2);
        return double_n2 + n1;
    }

    //三个整数相加
    int calculate(int n1, int n2, int n3) {
        return n1 + n2 + n3;
    }

}
